home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 12 / BBS in a box XII-1.iso / Files / Tele / Pete Johnson / AreaTrix 1.0.4<source>.sit / MiscUtils.p < prev    next >
Encoding:
Text File  |  1990-06-10  |  1.4 KB  |  70 lines  |  [TEXT/PJMM]

  1. unit MiscUtils;
  2.  
  3. {    Created June 10, 1990, as part of AreaTrix.}
  4.  
  5. interface
  6.  
  7.  
  8. uses
  9.     Globals;
  10.  
  11. function MakeHexString (Value: integer): str255;
  12.  
  13. function HexNode (NodeID: str255): str255;
  14.  
  15. implementation
  16.  
  17. { ------------------------------------------------------ }
  18.  
  19. function DoMath (var Value: integer; Divisor: integer): char;
  20.  
  21.     var
  22.         Digit: integer;
  23.  
  24.     begin
  25.         Digit := Value div Divisor;
  26.         if Digit > 9 then
  27.             DoMath := char(ord('A') + Digit - 10)
  28.         else
  29.             DoMath := char(ord('0') + Digit);
  30.         Value := Value mod Divisor
  31.     end;
  32.  
  33. { ------------------------------------------------------ }
  34.  
  35. function MakeHexString;
  36.  
  37.     var
  38.         TempString: str255;
  39.  
  40.     begin
  41.         TempString := DoMath(Value, 4096);
  42.         TempString := concat(TempString, DoMath(Value, 256));
  43.         TempString := concat(TempString, DoMath(Value, 16));
  44.         TempString := concat(TempString, DoMath(Value, 1));
  45.         MakeHexString := TempString
  46.     end;
  47.  
  48. { ------------------------------------------------------ }
  49.  
  50. function HexNode (NodeID: str255): str255;
  51.  
  52.     var
  53.         Value: longint;
  54.         TempString1, TempString2: str255;
  55.  
  56.     begin
  57.         if pos('/', NodeID) > 0 then
  58.             begin
  59.                 TempString1 := copy(NodeID, 1, pos('/', NodeID) - 1);
  60.                 StringToNum(TempString1, Value);
  61.                 TempString1 := MakeHexString(Value);
  62.                 TempString2 := copy(NodeID, pos('/', NodeID) + 1, 255);
  63.                 StringToNum(TempString2, Value);
  64.                 HexNode := concat(TempString1, MakeHexString(Value))
  65.             end
  66.         else
  67.             HexNode := '00000000'
  68.     end;
  69.  
  70. end.    {Unit}